/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2020-2022. All rights reserved.
 * Description: gradient Split Tune module header file
 * Author: zhaohuailong
 * Create: 2020-10-12
 */

#ifndef GRADIENT_SPLIT_TUNE_H
#define GRADIENT_SPLIT_TUNE_H

#include <string>
#include "nlohmann/json.hpp"

struct BPTimeInfo {
    std::string opName;
    uint64_t time;
};

struct GradientNode {
    std::string traceNodeName;
    std::string groupName;
    std::string dataType;
    uint64_t gradientSize;
    uint32_t graphId;
};

struct GradientInfo {
    std::string opName;
    std::string groupName;
    std::string dataType;
    uint64_t time;
    uint64_t gradientSize;
    uint32_t graphId;
    uint32_t index;
};

typedef struct {
    int gradientSizeIndex;
    int dataTypeIndex;
    int graphIdIndex;
    int traceNodeNameIndex;
    int groupNameIndex;
} IndexInfo;

#endif